/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.configv2.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage;

import org.eclipse.emf.ecore.xml.type.XMLTypePackage;

import org.taobao.ibatiside.model.configv2.Configv2Factory;
import org.taobao.ibatiside.model.configv2.Configv2Package;
import org.taobao.ibatiside.model.configv2.DataSourceType;
import org.taobao.ibatiside.model.configv2.DocumentRoot;
import org.taobao.ibatiside.model.configv2.PropertiesType;
import org.taobao.ibatiside.model.configv2.PropertyType;
import org.taobao.ibatiside.model.configv2.ResultObjectFactoryType;
import org.taobao.ibatiside.model.configv2.SettingsType;
import org.taobao.ibatiside.model.configv2.SqlMapConfigType;
import org.taobao.ibatiside.model.configv2.SqlMapType;
import org.taobao.ibatiside.model.configv2.TransactionManagerType;
import org.taobao.ibatiside.model.configv2.TypeAliasType;
import org.taobao.ibatiside.model.configv2.TypeHandlerType;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class Configv2PackageImpl extends EPackageImpl implements Configv2Package {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataSourceTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass documentRootEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass propertiesTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass propertyTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass resultObjectFactoryTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass settingsTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass sqlMapConfigTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass sqlMapTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass transactionManagerTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeAliasTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeHandlerTypeEClass = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private Configv2PackageImpl() {
		super(eNS_URI, Configv2Factory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link Configv2Package#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static Configv2Package init() {
		if (isInited) return (Configv2Package)EPackage.Registry.INSTANCE.getEPackage(Configv2Package.eNS_URI);

		// Obtain or create and register package
		Configv2PackageImpl theConfigv2Package = (Configv2PackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Configv2PackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Configv2PackageImpl());

		isInited = true;

		// Initialize simple dependencies
		EcorePackage.eINSTANCE.eClass();
		XMLNamespacePackage.eINSTANCE.eClass();
		XMLTypePackage.eINSTANCE.eClass();

		// Create package meta-data objects
		theConfigv2Package.createPackageContents();

		// Initialize created meta-data
		theConfigv2Package.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theConfigv2Package.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(Configv2Package.eNS_URI, theConfigv2Package);
		return theConfigv2Package;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataSourceType() {
		return dataSourceTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDataSourceType_Property() {
		return (EReference)dataSourceTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataSourceType_Type() {
		return (EAttribute)dataSourceTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDocumentRoot() {
		return documentRootEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDocumentRoot_Mixed() {
		return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_XMLNSPrefixMap() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_XSISchemaLocation() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_DataSource() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Properties() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Property() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_ResultObjectFactory() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Settings() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_SqlMap() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_SqlMapConfig() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TransactionManager() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeAlias() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeHandler() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPropertiesType() {
		return propertiesTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertiesType_Resource() {
		return (EAttribute)propertiesTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertiesType_Url() {
		return (EAttribute)propertiesTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPropertyType() {
		return propertyTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertyType_Name() {
		return (EAttribute)propertyTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertyType_Value() {
		return (EAttribute)propertyTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getResultObjectFactoryType() {
		return resultObjectFactoryTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getResultObjectFactoryType_Property() {
		return (EReference)resultObjectFactoryTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getResultObjectFactoryType_Type() {
		return (EAttribute)resultObjectFactoryTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSettingsType() {
		return settingsTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_CacheModelsEnabled() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_ClassInfoCacheEnabled() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_DefaultStatementTimeout() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_EnhancementEnabled() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_ErrorTracingEnabled() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_ForceMultipleResultSetSupport() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_LazyLoadingEnabled() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_MaxRequests() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_MaxSessions() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_MaxTransactions() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_StatementCachingEnabled() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_UseColumnLabel() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingsType_UseStatementNamespaces() {
		return (EAttribute)settingsTypeEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSqlMapConfigType() {
		return sqlMapConfigTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSqlMapConfigType_Group() {
		return (EAttribute)sqlMapConfigTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_Properties() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_Settings() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_ResultObjectFactory() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_TypeAlias() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_TypeHandler() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_TransactionManager() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSqlMapConfigType_SqlMap() {
		return (EReference)sqlMapConfigTypeEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSqlMapType() {
		return sqlMapTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSqlMapType_Resource() {
		return (EAttribute)sqlMapTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSqlMapType_Url() {
		return (EAttribute)sqlMapTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTransactionManagerType() {
		return transactionManagerTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTransactionManagerType_Property() {
		return (EReference)transactionManagerTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTransactionManagerType_DataSource() {
		return (EReference)transactionManagerTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTransactionManagerType_CommitRequired() {
		return (EAttribute)transactionManagerTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTransactionManagerType_Type() {
		return (EAttribute)transactionManagerTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeAliasType() {
		return typeAliasTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeAliasType_Alias() {
		return (EAttribute)typeAliasTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeAliasType_Type() {
		return (EAttribute)typeAliasTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeHandlerType() {
		return typeHandlerTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeHandlerType_Callback() {
		return (EAttribute)typeHandlerTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeHandlerType_JavaType() {
		return (EAttribute)typeHandlerTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeHandlerType_JdbcType() {
		return (EAttribute)typeHandlerTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Configv2Factory getConfigv2Factory() {
		return (Configv2Factory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		dataSourceTypeEClass = createEClass(DATA_SOURCE_TYPE);
		createEReference(dataSourceTypeEClass, DATA_SOURCE_TYPE__PROPERTY);
		createEAttribute(dataSourceTypeEClass, DATA_SOURCE_TYPE__TYPE);

		documentRootEClass = createEClass(DOCUMENT_ROOT);
		createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
		createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
		createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
		createEReference(documentRootEClass, DOCUMENT_ROOT__DATA_SOURCE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PROPERTIES);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PROPERTY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__RESULT_OBJECT_FACTORY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SETTINGS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SQL_MAP);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SQL_MAP_CONFIG);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TRANSACTION_MANAGER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_ALIAS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_HANDLER);

		propertiesTypeEClass = createEClass(PROPERTIES_TYPE);
		createEAttribute(propertiesTypeEClass, PROPERTIES_TYPE__RESOURCE);
		createEAttribute(propertiesTypeEClass, PROPERTIES_TYPE__URL);

		propertyTypeEClass = createEClass(PROPERTY_TYPE);
		createEAttribute(propertyTypeEClass, PROPERTY_TYPE__NAME);
		createEAttribute(propertyTypeEClass, PROPERTY_TYPE__VALUE);

		resultObjectFactoryTypeEClass = createEClass(RESULT_OBJECT_FACTORY_TYPE);
		createEReference(resultObjectFactoryTypeEClass, RESULT_OBJECT_FACTORY_TYPE__PROPERTY);
		createEAttribute(resultObjectFactoryTypeEClass, RESULT_OBJECT_FACTORY_TYPE__TYPE);

		settingsTypeEClass = createEClass(SETTINGS_TYPE);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__CACHE_MODELS_ENABLED);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__CLASS_INFO_CACHE_ENABLED);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__DEFAULT_STATEMENT_TIMEOUT);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__ENHANCEMENT_ENABLED);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__ERROR_TRACING_ENABLED);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__FORCE_MULTIPLE_RESULT_SET_SUPPORT);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__LAZY_LOADING_ENABLED);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__MAX_REQUESTS);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__MAX_SESSIONS);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__MAX_TRANSACTIONS);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__STATEMENT_CACHING_ENABLED);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__USE_COLUMN_LABEL);
		createEAttribute(settingsTypeEClass, SETTINGS_TYPE__USE_STATEMENT_NAMESPACES);

		sqlMapConfigTypeEClass = createEClass(SQL_MAP_CONFIG_TYPE);
		createEAttribute(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__GROUP);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__PROPERTIES);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__SETTINGS);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__RESULT_OBJECT_FACTORY);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__TYPE_ALIAS);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__TYPE_HANDLER);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__TRANSACTION_MANAGER);
		createEReference(sqlMapConfigTypeEClass, SQL_MAP_CONFIG_TYPE__SQL_MAP);

		sqlMapTypeEClass = createEClass(SQL_MAP_TYPE);
		createEAttribute(sqlMapTypeEClass, SQL_MAP_TYPE__RESOURCE);
		createEAttribute(sqlMapTypeEClass, SQL_MAP_TYPE__URL);

		transactionManagerTypeEClass = createEClass(TRANSACTION_MANAGER_TYPE);
		createEReference(transactionManagerTypeEClass, TRANSACTION_MANAGER_TYPE__PROPERTY);
		createEReference(transactionManagerTypeEClass, TRANSACTION_MANAGER_TYPE__DATA_SOURCE);
		createEAttribute(transactionManagerTypeEClass, TRANSACTION_MANAGER_TYPE__COMMIT_REQUIRED);
		createEAttribute(transactionManagerTypeEClass, TRANSACTION_MANAGER_TYPE__TYPE);

		typeAliasTypeEClass = createEClass(TYPE_ALIAS_TYPE);
		createEAttribute(typeAliasTypeEClass, TYPE_ALIAS_TYPE__ALIAS);
		createEAttribute(typeAliasTypeEClass, TYPE_ALIAS_TYPE__TYPE);

		typeHandlerTypeEClass = createEClass(TYPE_HANDLER_TYPE);
		createEAttribute(typeHandlerTypeEClass, TYPE_HANDLER_TYPE__CALLBACK);
		createEAttribute(typeHandlerTypeEClass, TYPE_HANDLER_TYPE__JAVA_TYPE);
		createEAttribute(typeHandlerTypeEClass, TYPE_HANDLER_TYPE__JDBC_TYPE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Obtain other dependent packages
		XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes

		// Initialize classes and features; add operations and parameters
		initEClass(dataSourceTypeEClass, DataSourceType.class, "DataSourceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDataSourceType_Property(), this.getPropertyType(), null, "property", null, 0, -1, DataSourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDataSourceType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, DataSourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(documentRootEClass, DocumentRoot.class, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_DataSource(), this.getDataSourceType(), null, "dataSource", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Properties(), this.getPropertiesType(), null, "properties", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Property(), this.getPropertyType(), null, "property", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_ResultObjectFactory(), this.getResultObjectFactoryType(), null, "resultObjectFactory", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Settings(), this.getSettingsType(), null, "settings", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_SqlMap(), this.getSqlMapType(), null, "sqlMap", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_SqlMapConfig(), this.getSqlMapConfigType(), null, "sqlMapConfig", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TransactionManager(), this.getTransactionManagerType(), null, "transactionManager", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeAlias(), this.getTypeAliasType(), null, "typeAlias", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeHandler(), this.getTypeHandlerType(), null, "typeHandler", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(propertiesTypeEClass, PropertiesType.class, "PropertiesType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getPropertiesType_Resource(), theXMLTypePackage.getString(), "resource", null, 0, 1, PropertiesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPropertiesType_Url(), theXMLTypePackage.getAnyURI(), "url", null, 0, 1, PropertiesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(propertyTypeEClass, PropertyType.class, "PropertyType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getPropertyType_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, PropertyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPropertyType_Value(), theXMLTypePackage.getString(), "value", null, 1, 1, PropertyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(resultObjectFactoryTypeEClass, ResultObjectFactoryType.class, "ResultObjectFactoryType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getResultObjectFactoryType_Property(), this.getPropertyType(), null, "property", null, 0, -1, ResultObjectFactoryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getResultObjectFactoryType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, ResultObjectFactoryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(settingsTypeEClass, SettingsType.class, "SettingsType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSettingsType_CacheModelsEnabled(), theXMLTypePackage.getBoolean(), "cacheModelsEnabled", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_ClassInfoCacheEnabled(), theXMLTypePackage.getBoolean(), "classInfoCacheEnabled", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_DefaultStatementTimeout(), theXMLTypePackage.getInteger(), "defaultStatementTimeout", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_EnhancementEnabled(), theXMLTypePackage.getBoolean(), "enhancementEnabled", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_ErrorTracingEnabled(), theXMLTypePackage.getBoolean(), "errorTracingEnabled", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_ForceMultipleResultSetSupport(), theXMLTypePackage.getBoolean(), "forceMultipleResultSetSupport", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_LazyLoadingEnabled(), theXMLTypePackage.getBoolean(), "lazyLoadingEnabled", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_MaxRequests(), theXMLTypePackage.getInteger(), "maxRequests", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_MaxSessions(), theXMLTypePackage.getInteger(), "maxSessions", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_MaxTransactions(), theXMLTypePackage.getInteger(), "maxTransactions", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_StatementCachingEnabled(), theXMLTypePackage.getBoolean(), "statementCachingEnabled", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_UseColumnLabel(), theXMLTypePackage.getBoolean(), "useColumnLabel", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingsType_UseStatementNamespaces(), theXMLTypePackage.getBoolean(), "useStatementNamespaces", null, 0, 1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(sqlMapConfigTypeEClass, SqlMapConfigType.class, "SqlMapConfigType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSqlMapConfigType_Group(), ecorePackage.getEFeatureMapEntry(), "group", null, 0, -1, SqlMapConfigType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_Properties(), this.getPropertiesType(), null, "properties", null, 0, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_Settings(), this.getSettingsType(), null, "settings", null, 0, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_ResultObjectFactory(), this.getResultObjectFactoryType(), null, "resultObjectFactory", null, 0, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_TypeAlias(), this.getTypeAliasType(), null, "typeAlias", null, 0, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_TypeHandler(), this.getTypeHandlerType(), null, "typeHandler", null, 0, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_TransactionManager(), this.getTransactionManagerType(), null, "transactionManager", null, 0, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getSqlMapConfigType_SqlMap(), this.getSqlMapType(), null, "sqlMap", null, 1, -1, SqlMapConfigType.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(sqlMapTypeEClass, SqlMapType.class, "SqlMapType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSqlMapType_Resource(), theXMLTypePackage.getString(), "resource", null, 0, 1, SqlMapType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSqlMapType_Url(), theXMLTypePackage.getAnyURI(), "url", null, 0, 1, SqlMapType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(transactionManagerTypeEClass, TransactionManagerType.class, "TransactionManagerType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getTransactionManagerType_Property(), this.getPropertyType(), null, "property", null, 0, -1, TransactionManagerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getTransactionManagerType_DataSource(), this.getDataSourceType(), null, "dataSource", null, 1, 1, TransactionManagerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTransactionManagerType_CommitRequired(), theXMLTypePackage.getBoolean(), "commitRequired", null, 0, 1, TransactionManagerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTransactionManagerType_Type(), theXMLTypePackage.getAnySimpleType(), "type", null, 1, 1, TransactionManagerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeAliasTypeEClass, TypeAliasType.class, "TypeAliasType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTypeAliasType_Alias(), theXMLTypePackage.getString(), "alias", null, 1, 1, TypeAliasType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeAliasType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, TypeAliasType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeHandlerTypeEClass, TypeHandlerType.class, "TypeHandlerType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTypeHandlerType_Callback(), theXMLTypePackage.getString(), "callback", null, 1, 1, TypeHandlerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeHandlerType_JavaType(), theXMLTypePackage.getString(), "javaType", null, 1, 1, TypeHandlerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeHandlerType_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, TypeHandlerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		// Create resource
		createResource(eNS_URI);

		// Create annotations
		// http:///org/eclipse/emf/ecore/util/ExtendedMetaData
		createExtendedMetaDataAnnotations();
	}

	/**
	 * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected void createExtendedMetaDataAnnotations() {
		String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";			
		addAnnotation
		  (this, 
		   source, 
		   new String[] {
			 "qualified", "false"
		   });		
		addAnnotation
		  (dataSourceTypeEClass, 
		   source, 
		   new String[] {
			 "name", "dataSource_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getDataSourceType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDataSourceType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (documentRootEClass, 
		   source, 
		   new String[] {
			 "name", "",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getDocumentRoot_Mixed(), 
		   source, 
		   new String[] {
			 "kind", "elementWildcard",
			 "name", ":mixed"
		   });		
		addAnnotation
		  (getDocumentRoot_XMLNSPrefixMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "xmlns:prefix"
		   });		
		addAnnotation
		  (getDocumentRoot_XSISchemaLocation(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "xsi:schemaLocation"
		   });		
		addAnnotation
		  (getDocumentRoot_DataSource(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "dataSource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Properties(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "properties",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_ResultObjectFactory(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "resultObjectFactory",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Settings(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "settings",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_SqlMap(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "sqlMap",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_SqlMapConfig(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "sqlMapConfig",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TransactionManager(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "transactionManager",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeAlias(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAlias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (propertiesTypeEClass, 
		   source, 
		   new String[] {
			 "name", "properties_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getPropertiesType_Resource(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getPropertiesType_Url(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "url",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (propertyTypeEClass, 
		   source, 
		   new String[] {
			 "name", "property_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getPropertyType_Name(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "name",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getPropertyType_Value(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "value",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (resultObjectFactoryTypeEClass, 
		   source, 
		   new String[] {
			 "name", "resultObjectFactory_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getResultObjectFactoryType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getResultObjectFactoryType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (settingsTypeEClass, 
		   source, 
		   new String[] {
			 "name", "settings_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getSettingsType_CacheModelsEnabled(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "cacheModelsEnabled",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_ClassInfoCacheEnabled(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "classInfoCacheEnabled",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_DefaultStatementTimeout(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "defaultStatementTimeout",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_EnhancementEnabled(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "enhancementEnabled",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_ErrorTracingEnabled(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "errorTracingEnabled",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_ForceMultipleResultSetSupport(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "forceMultipleResultSetSupport",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_LazyLoadingEnabled(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "lazyLoadingEnabled",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_MaxRequests(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "maxRequests",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_MaxSessions(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "maxSessions",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_MaxTransactions(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "maxTransactions",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_StatementCachingEnabled(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "statementCachingEnabled",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_UseColumnLabel(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "useColumnLabel",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingsType_UseStatementNamespaces(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "useStatementNamespaces",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (sqlMapConfigTypeEClass, 
		   source, 
		   new String[] {
			 "name", "sqlMapConfig_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getSqlMapConfigType_Group(), 
		   source, 
		   new String[] {
			 "kind", "group",
			 "name", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_Properties(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "properties",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_Settings(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "settings",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_ResultObjectFactory(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "resultObjectFactory",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_TypeAlias(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAlias",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_TransactionManager(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "transactionManager",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (getSqlMapConfigType_SqlMap(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "sqlMap",
			 "namespace", "##targetNamespace",
			 "group", "group:0"
		   });		
		addAnnotation
		  (sqlMapTypeEClass, 
		   source, 
		   new String[] {
			 "name", "sqlMap_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getSqlMapType_Resource(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSqlMapType_Url(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "url",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (transactionManagerTypeEClass, 
		   source, 
		   new String[] {
			 "name", "transactionManager_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getTransactionManagerType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTransactionManagerType_DataSource(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "dataSource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTransactionManagerType_CommitRequired(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "commitRequired",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTransactionManagerType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeAliasTypeEClass, 
		   source, 
		   new String[] {
			 "name", "typeAlias_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getTypeAliasType_Alias(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "alias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeAliasType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeHandlerTypeEClass, 
		   source, 
		   new String[] {
			 "name", "typeHandler_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getTypeHandlerType_Callback(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "callback",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeHandlerType_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeHandlerType_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });
	}

} //Configv2PackageImpl
